Avoid unnecessary redraws when resizing. Patch by Owen Taylor
authorMatthias Clasen <matthiasc@src.gnome.org>
Mon, 30 Jun 2008 05:17:02 +0000 (05:17 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 30 Jun 2008 05:17:02 +0000 (05:17 +0000)
        * gtk/gtkwindow.c: Avoid unnecessary redraws when resizing.
        Patch by Owen Taylor

svn path=/trunk/; revision=20705

ChangeLog
gtk/gtkwindow.c

index 775d7cc5849d73e6bcfb2fd74b3c9f30bfd0aacb..8849bd6ad8efe73d3b4b8b84768f68abec452afa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-06-30  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 540310 – Avoid unnecessary repaints when resizing GtkWindow
+
+       * gtk/gtkwindow.c: Avoid unnecessary redraws when resizing.
+       Patch by Owen Taylor
+
 2008-06-29  Behdad Esfahbod  <behdad@gnome.org>
 
        Bug 530255 – GtkAboutDialog cuts off comments label
index dafc61423ebb3b301ba2fe829717caa762a23cde..a565cf165f4cb6197af76383187b24de5968ccf6 100644 (file)
@@ -1549,7 +1549,7 @@ gtk_window_set_policy (GtkWindow *window,
   g_object_notify (G_OBJECT (window), "resizable");
   g_object_thaw_notify (G_OBJECT (window));
   
-  gtk_widget_queue_resize (GTK_WIDGET (window));
+  gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window));
 }
 
 static gboolean
@@ -1765,7 +1765,7 @@ gtk_window_set_position (GtkWindow         *window,
        */
       info->position_constraints_changed = TRUE;
 
-      gtk_widget_queue_resize (GTK_WIDGET (window));
+      gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window));
     }
 
   window->position = position;
@@ -2690,7 +2690,7 @@ gtk_window_set_geometry_hints (GtkWindow       *window,
       gtk_window_set_gravity (window, geometry->win_gravity);
     }
   
-  gtk_widget_queue_resize (GTK_WIDGET (window));
+  gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window));
 }
 
 /**
@@ -3689,7 +3689,7 @@ gtk_window_set_default_size_internal (GtkWindow    *window,
   
   g_object_thaw_notify (G_OBJECT (window));
   
-  gtk_widget_queue_resize (GTK_WIDGET (window));
+  gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window));
 }
 
 /**
@@ -3804,7 +3804,7 @@ gtk_window_resize (GtkWindow *window,
   info->resize_width = width;
   info->resize_height = height;
 
-  gtk_widget_queue_resize (GTK_WIDGET (window));
+  gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window));
 }
 
 /**
@@ -6039,7 +6039,7 @@ gtk_window_move_resize (GtkWindow *window)
            */
          info->last = saved_last_info;
           
-         gtk_widget_queue_resize (widget); /* migth recurse for GTK_RESIZE_IMMEDIATE */
+         gtk_widget_queue_resize_no_redraw (widget); /* migth recurse for GTK_RESIZE_IMMEDIATE */
        }
 
       return;                  /* Bail out, we didn't really process the move/resize */
@@ -6132,7 +6132,7 @@ gtk_window_move_resize (GtkWindow *window)
           */
          if (container->resize_mode == GTK_RESIZE_QUEUE)
            {
-             gtk_widget_queue_resize (widget);
+             gtk_widget_queue_resize_no_redraw (widget);
              _gtk_container_dequeue_resize_handler (container);
            }
        }
@@ -7049,7 +7049,7 @@ gtk_window_set_gravity (GtkWindow *window,
 
       /* gtk_window_move_resize() will adapt gravity
        */
-      gtk_widget_queue_resize (GTK_WIDGET (window));
+      gtk_widget_queue_resize_no_redraw (GTK_WIDGET (window));
 
       g_object_notify (G_OBJECT (window), "gravity");
     }